home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_8 / MissionTasks.script < prev    next >
Text File  |  2001-10-25  |  12KB  |  519 lines

  1. //---------------------------------
  2. //    Mission script
  3. //
  4. //    (c) 2001 G5 Software:
  5. //            Sergey Shoolts
  6. //            Vlad Suglobov
  7. //            Max Ryumin
  8. //            Alex Tabunov
  9. //            Alex Koloskov
  10. //---------------------------------
  11.  
  12.  
  13. ///////////////////////////////////
  14. //
  15. // Mission 8 -- Silent Destroyer
  16. //
  17. ///////////////////////////////////
  18.  
  19. //
  20. // *** task for Nazi AntiAirGroup 1_234 ***
  21. //
  22.  
  23. ///////////////////////////////////////////////////////////////////////
  24. /// Start of Gun Towers Section
  25. ///////////////////////////////////////////////////////////////////////
  26.  
  27. class C8_NaziGT extends CBaseAITask_BaseTask
  28. {
  29.   int StartTime = 0;
  30.   int TimeContinuous = 5000;
  31.   void OnEnemyTargeted()
  32.   {
  33.     StartTime = GetGameTime();
  34.     Core_BroadcastEvent( "WarningDetected" );
  35.   }
  36.   void OnNoEnemy()
  37.   {
  38.     StartTime = 0;
  39.   }
  40.  
  41.   void Unit_Destroyed( string ObjectID )
  42.   {
  43.     if ( Core_IsStringStartsWith( ObjectID, "8_NaziGT_A" ))
  44.     {
  45.       Core_BroadcastEvent( "GalderStart" );
  46.     }
  47.   }
  48.  
  49.  
  50.   void OnUpdate()
  51.   {
  52.     if ( (StartTime != 0) && ( (GetGameTime() - StartTime) > TimeContinuous ) )
  53.     {
  54.       Core_BroadcastEvent( "GalderStart" );
  55.     }
  56.   }
  57. }
  58.  
  59.  
  60. ///////////////////////////////////////////////////////////////////////
  61. /// End of Gun Towers Section
  62. ///////////////////////////////////////////////////////////////////////
  63.  
  64. ///////////////////////////////////////////////////////////////////////
  65. /// Start of Galder's Section: A - real Galder, B - fake Galder
  66. ///////////////////////////////////////////////////////////////////////
  67.  
  68. class C8_Galder_A extends CBaseAITask_Patrol
  69. {
  70.   void Init()
  71.   {
  72.     DeactivatePatrol();
  73.   }
  74.  
  75.   array GetPatrolTrip()
  76.   {
  77.     return array (vector(4370,13680,0));
  78.   }
  79.  
  80.   float GetTripSpeed()
  81.   {
  82.     return 32;
  83.   }
  84.  
  85.   void GalderStart()
  86.   {
  87.     ActivatePatrol();
  88.   }
  89. }
  90.  
  91. ///--------------------------------------------------------------------
  92.  
  93. class C8_Galder_B extends CBaseAITask_Patrol
  94. {
  95.   void Init()
  96.   {
  97.     DeactivatePatrol();
  98.   }
  99.  
  100.   array GetPatrolTrip()
  101.   {
  102.     return array (vector(3250,4050,0));
  103.   }
  104.  
  105.   float GetTripSpeed()
  106.   {
  107.     return 29;
  108.   }
  109.  
  110.   void GalderStart()
  111.   {
  112.     ActivatePatrol();
  113.   }
  114. }
  115.  
  116. ///////////////////////////////////////////////////////////////////////
  117. /// End of Galder's Section: A - real Galder, B - fake Galder
  118. ///////////////////////////////////////////////////////////////////////
  119.  
  120. ///////////////////////////////////////////////////////////////////////
  121. /// Start of CrossRoads patrol Section
  122. ///////////////////////////////////////////////////////////////////////
  123.  
  124. class C8_NaziCross extends CBaseAITask_BaseTask
  125. {
  126.   int StartTime = 0;
  127.   int TimeContinuous = 5000;
  128.   void OnEnemyTargeted()
  129.   {
  130.     StartTime = GetGameTime();
  131.     Core_BroadcastEvent( "WarningDetected" );
  132.   }
  133.   void OnNoEnemy()
  134.   {
  135.     StartTime = 0;
  136.   }
  137.  
  138.   void OnUpdate()
  139.   {
  140.     if ( (StartTime != 0) && ( (GetGameTime() - StartTime) > TimeContinuous ) )
  141.     {
  142.       Core_BroadcastEvent( "GalderStart" );
  143.     }
  144.   }
  145.  
  146.   void Unit_Destroyed( string ObjectID )
  147.   {
  148.     if ( Core_IsStringStartsWith( ObjectID, GetUnitPrefix() ))
  149.     {
  150.       Core_BroadcastEvent( "GalderStart" );
  151.     }
  152.   }
  153. }
  154.  
  155. class C8_NaziCross_A extends C8_NaziCross
  156. {
  157.   string GetUnitPrefix()
  158.   {
  159.     return "8_NaziCross_A";
  160.   }
  161. }
  162.  
  163. //----------------------------------------------------------------------------------
  164.  
  165. class C8_NaziCross_B extends C8_NaziCross
  166. {
  167.   string GetUnitPrefix()
  168.   {
  169.     return "8_NaziCross_B";
  170.   }
  171. }
  172.  
  173. //----------------------------------------------------------------------------------
  174.  
  175. class C8_NaziCross_C extends C8_NaziCross
  176. {
  177.   string GetUnitPrefix()
  178.   {
  179.     return "8_NaziCross_C";
  180.   }
  181. }
  182. //----------------------------------------------------------------------------------
  183.  
  184. class C8_NaziCross_D extends C8_NaziCross
  185. {
  186.   string GetUnitPrefix()
  187.   {
  188.     return "8_NaziCross_D";
  189.   }
  190. }
  191. ///////////////////////////////////////////////////////////////////////
  192. /// End of CrossRoads patrol Section
  193. ///////////////////////////////////////////////////////////////////////
  194.  
  195. /// Start of Nazi Patrol from A to D ==================================
  196. class C8_NaziPatrol extends CBaseAITask_Patrol
  197. {
  198.   int StartTime = 0;
  199.   int TimeContinuous = 5000;
  200.  
  201.     array GetPatrolTrip()
  202.   {
  203.     return array (vector(6705,6085,0),
  204.               vector(9550,4570,0));
  205.   }
  206.  
  207.   float GetTripSpeed()
  208.   {
  209.     return 20;
  210.   }
  211.  
  212.   void OnEnemyTargeted()
  213.   {
  214.     StartTime = GetGameTime();
  215.   }
  216.   void OnNoEnemy()
  217.   {
  218.     StartTime = 0;
  219.   }
  220.  
  221.   void OnUpdate()
  222.   {
  223.     if ( (StartTime != 0) && ( (GetGameTime() - StartTime) > TimeContinuous ) )
  224.     {
  225.       Core_BroadcastEvent( "GalderStart" );
  226.     }
  227.   }
  228.  
  229.   void Unit_Destroyed( string ObjectID )
  230.   {
  231.     if ( Core_IsStringStartsWith( ObjectID, GetUnitPrefix() ))
  232.     {
  233.       Core_BroadcastEvent( "GalderStart" );
  234.     }
  235.   }
  236. }
  237. ///--------------------------------------------------------------------------------
  238. class C8_NaziPatrol_AD extends C8_NaziPatrol
  239. {
  240.   array GetPatrolTrip()
  241.   {
  242.     return array (vector(6705,6085,0),
  243.                   vector(9550,4570,0));
  244.   }
  245.   string GetUnitPrefix()
  246.   {
  247.     return "8_NaziPatrol_AD";
  248.   }
  249. }
  250. ///--------------------------------------------------------------------------------
  251. class C8_NaziPatrol_BG extends C8_NaziPatrol
  252. {
  253.   array GetPatrolTrip()
  254.   {
  255.     return array (vector(9443,10327,0),
  256.                   vector(7505,10655,0));
  257.   }
  258.   string GetUnitPrefix()
  259.   {
  260.     return "8_NaziPatrol_BG";
  261.   }
  262. }
  263. ///--------------------------------------------------------------------------------
  264. class C8_NaziPatrol_BC extends C8_NaziPatrol
  265. {
  266.   array GetPatrolTrip()
  267.   {
  268.     return array (vector(6235,9690,0),
  269.                   vector(7500,10650,0));
  270.   }
  271.   string GetUnitPrefix()
  272.   {
  273.     return "8_NaziPatrol_BC";
  274.   }
  275. }
  276. /// End of Nazi Patrol from A to D ====================================
  277.  
  278. ///////////////////////////////////////////////////////////////////////
  279. /// Start of Campers Section
  280. ///////////////////////////////////////////////////////////////////////
  281.  
  282. class C8_NaziCamp_A extends CBaseAITask_Patrol
  283. {
  284.   int StartTime = 0;
  285.   int TimeContinuous = 5000;
  286.  
  287.   void Init()
  288.   {
  289.     DeactivatePatrol();
  290.   }
  291.  
  292.   array GetPatrolTrip()
  293.   {
  294.     return array (vector(13345,4765,0));
  295.   }
  296.  
  297.   float GetTripSpeed()
  298.   {
  299.     return 23;
  300.   }
  301.  
  302.   void OnEnemyTargeted()
  303.   {
  304.     StartTime = GetGameTime();
  305.   }
  306.   void OnNoEnemy()
  307.   {
  308.     StartTime = 0;
  309.   }
  310.  
  311.   void OnUpdate()
  312.   {
  313.     if ( (StartTime != 0) && ( (GetGameTime() - StartTime) > TimeContinuous ) )
  314.     {
  315.       Core_BroadcastEvent( "CampAlarm" );
  316.     }
  317.   }
  318.  
  319.   void Unit_Destroyed( string ObjectID )
  320.   {
  321.     if ( Core_IsStringStartsWith( ObjectID, "8_NaziCamp_A" ))
  322.     {
  323.       Core_BroadcastEvent( "CampAlarm" );
  324.     }
  325.   }
  326.   void CampAlarm()
  327.   {
  328.     ActivatePatrol();
  329.   }
  330.   void CampA_PointReached()
  331.     {
  332.       DeactivatePatrol();
  333.     }
  334. }
  335. ///----------------------------------------------------------------------
  336. class C8_NaziCamp_B extends CBaseAITask_Patrol
  337. {
  338.   int StartTime = 0;
  339.   int TimeContinuous = 5000;
  340.  
  341.   void Init()
  342.   {
  343.     DeactivatePatrol();
  344.   }
  345.   array GetPatrolTrip()
  346.   {
  347.     return array (vector(9640,4640,0));
  348.   }
  349.   float GetTripSpeed()
  350.   {
  351.     return 24;
  352.   }
  353.   void OnEnemyTargeted()
  354.   {
  355.     StartTime = GetGameTime();
  356.   }
  357.   void OnNoEnemy()
  358.   {
  359.     StartTime = 0;
  360.   }
  361.   void OnUpdate()
  362.   {
  363.     if ( (StartTime != 0) && ( (GetGameTime() - StartTime) > TimeContinuous ) )
  364.     {
  365.       Core_BroadcastEvent( "CampAlarm" );
  366.     }
  367.   }
  368.   void Unit_Destroyed( string ObjectID )
  369.   {
  370.     if ( Core_IsStringStartsWith( ObjectID, "8_NaziCamp_B" ))
  371.     {
  372.       Core_BroadcastEvent( "CampAlarm" );
  373.     }
  374.   }
  375.   void CampAlarm()
  376.   {
  377.     ActivatePatrol();
  378.   }
  379.   void CampB_PointReached()
  380.     {
  381.       DeactivatePatrol();
  382.     }
  383. }
  384.  
  385. //-----------------------------------------
  386. // Jeeps runaway
  387. //-----------------------------------------
  388.  
  389. class C8_NaziAlert_A extends CBaseAITask_Patrol
  390. {
  391.   void Init()
  392.   {
  393.     DeactivatePatrol();
  394.   }
  395.   array GetPatrolTrip()
  396.   {
  397.     return array (vector(13345,4765,0));
  398.   }
  399.   float GetTripSpeed()
  400.   {
  401.     return 27;
  402.   }
  403.   void CampAlarm()
  404.   {
  405.     ActivatePatrol();
  406.   }
  407.   void AlertAStop()
  408.   {
  409.     DeactivatePatrol();
  410.   }
  411. }
  412. ///----------------------------------------------------------------------
  413. class C8_NaziAlert_B extends CBaseAITask_Patrol
  414. {
  415.   void Init()
  416.   {
  417.     DeactivatePatrol();
  418.   }
  419.   array GetPatrolTrip()
  420.   {
  421.     return array (vector(9640,4640,0));
  422.   }
  423.   float GetTripSpeed()
  424.   {
  425.     return 27;
  426.   }
  427.   void CampAlarm()
  428.   {
  429.     ActivatePatrol();
  430.   }
  431.   void AlertBStop()
  432.   {
  433.     DeactivatePatrol();
  434.   }
  435. }
  436. ///////////////////////////////////////////////////////////////////////
  437. /// End of Campers Section
  438. ///////////////////////////////////////////////////////////////////////
  439.  
  440. /// Start of Refueller Section ========================================
  441.  
  442. class C8_NaziFuel_A extends CBaseAITask_Patrol
  443. {
  444.   void Init()
  445.   {
  446.     DeactivatePatrol();
  447.   }
  448. }
  449. //--------------------------------------------------
  450. class C8_NaziFuel_B extends CBaseAITask_Patrol
  451. {
  452.   void Init()
  453.   {
  454.     DeactivatePatrol();
  455.   }
  456. }
  457. /// End of Refueller Section ==========================================
  458.  
  459. ///////////////////////////////////////////////////////////////////////
  460. /// Start of check for mission failed
  461. ///////////////////////////////////////////////////////////////////////
  462.  
  463. class CMission8_AIController extends CBaseAIController
  464. {
  465.   array  ActivatePointCenterList = array(
  466.     vector( 4370, 13680, 0),    // Right-Up Village
  467.     vector( 3250, 4050, 0),     // Left-Up Village
  468.     vector( 13345, 4765, 0),
  469.     vector( 9640, 4640, 0));
  470.  
  471.   array  ActivatePointRadiusList = array(
  472.     50.0,                       // radius of camp
  473.     50.0,
  474.     50.0,
  475.     50.0);
  476.  
  477.   array ActivatePointNameList = array(
  478.     "Right-Up Village",
  479.     "Left-Up Village",
  480.     "",
  481.     "");
  482.  
  483.  
  484.   void OnObjectEnterArea( int _AreaIndex, string _NavPointName, string _ObjectID )
  485.   {
  486.   ///--- If Galder get the point----------------------------------------
  487.     if ( (_AreaIndex == 0 ) && Core_IsStringStartsWith( _ObjectID, "8_Galder"))
  488.     {
  489.       Core_BroadcastEvent("OnGalderWon");
  490.       Core_LogMessage("Galder in a left-up village now");
  491.     }
  492.   ///--- If AlarmJeep got the point ------------------------------------
  493.     if ( ( _AreaIndex == 2 )
  494.       && Core_IsStringStartsWith( _ObjectID, "8_NaziAlert_A"))
  495.     {
  496.       Core_BroadcastEvent("GalderStart");
  497.       Core_BroadcastEvent("AlertAStop");
  498.     }
  499.     if ( ( _AreaIndex == 3 )
  500.       && Core_IsStringStartsWith( _ObjectID, "8_NaziAlert_B"))
  501.     {
  502.       Core_BroadcastEvent("GalderStart");
  503.       Core_BroadcastEvent("AlertBStop");
  504.     }
  505.   if ( ( _AreaIndex == 2 ) && Core_IsStringStartsWith( _ObjectID, "8_NaziCamp"))
  506.     {
  507.       Core_BroadcastEvent("CampA_PointReached");
  508.     }
  509.   if ( ( _AreaIndex == 3 ) && Core_IsStringStartsWith( _ObjectID, "8_NaziCamp"))
  510.     {
  511.       Core_BroadcastEvent("CampB_PointReached");
  512.     }
  513.   }
  514. }
  515.  
  516. ///////////////////////////////////////////////////////////////////////
  517. /// End of check for mission failed
  518. ///////////////////////////////////////////////////////////////////////
  519.